草庐IT

c++ - DLL监控

全部标签

Windows 权限,在不是管理员时获取 .dll 的句柄,不确定

好的,我正在学习WindowsAPI以及如何创建线程/进程和获得调试权限等。非常新,如果这是一个愚蠢的问题,我深表歉意。无论如何,我正在创建一个.dll注入(inject)器来玩,并且已经成功地能够注入(inject)32位和64位进程,包括通过注入(inject)我的.dll文件的explorer.exe。但是,我试图在标准用户模式下对此进行测试,但在弄清楚如何进行时遇到了问题。现在我正在为.dll和injector.exe编译为x64。我正在尝试注入(inject)x64进程,主要是explorer.exe(适用于管理员)。使用VisualStudio2012,进行了一些优化,没有

使用 Windows API 比较线程 ID

我正在使用WindowsAPI线程,我想比较线程ID。首先,我用CreateThread()创建了一个线程并存储我从函数中获取的句柄(HANDLE)和ID(LPDWORD)。然后我使用GetCurrentThread()从创建的线程中获取句柄和ID和GetThreadId().对于两个句柄和两个ID,我总是得到不同的值。有没有办法以类似于pthread的方式比较线程?我这样做是为了作为确认正确执行的调试选项。我总是从其他库(pthread.h、threads.h)但不是从Windowsapi得到正确的结果。这不是一个关键问题,但我想学习winapi中的程序

无法建立服务器客户端连接 - C winsock 中的错误 10061

我正在尝试在我家中本地网络中的2台计算机上运行服务器客户端。第一台电脑是服务器,第二台是客户端。尝试连接服务器时出现错误10061。(“错误-连接失败。sockfd是164,errno是34,WSA是10061”)。错误10061表示-“连接被拒绝。无法建立连接,因为目标机器主动拒绝它。这通常是由于尝试连接到外部主机上不活动的服务——即没有运行服务器应用程序的服务。”我认为这可能是防火墙问题,所以我在我的防火墙中批准了我正在使用的端口,但它仍然不起作用。此外,两台计算机具有相同的IP(这是为什么?)。这是我的代码:服务器.c:#include#include#include#inclu

c++ - 从源代码构建的 Clang 编译 C 但不编译 C++ 代码

我最近在Windows上编译了clang(主机:x86_64-pc-windows64;编译器:i686-pc-mingw32;目标:i686-pc-mingw32)。可以找到CMakeCache(用于配置):here我的问题是,虽然clang工作正常(对于C),但clang++(对于C++)将“成功”编译和链接,但生成的程序本身不会运行并将退出并返回错误代码1。下面是示例(哦-我的-zsh):➜bincattest.c#includeintmain(){printf("HelloWorld!\n");return0;}➜bincattest.cpp#includeintmain(){

c - 获取内核对象窗口列表

嗨!我打赌一个多星期了,我无法形成一个完整的图来说明如何获得内核对象列表。我的算法如下:1)连接NTDLL.dll(LoadLibrary)2)GetProcAddress(variable_Library_name,"NtQueryDirectoryObject")和预告结构:_OBJDIR_INFORMATION,_OBJECT_ATTRIBUTES3)尝试为列表应用NtOpenDirectoryObject函数对象下面是一段代码,负责函数NtOpenDirectoryObject的使用:OBJDIR_INFORMATION*ssinfo=(OBJDIR_INFORMATION*)

c - 套接字文件系统与普通磁盘文件系统

创建套接字后,它会立即创建一个假文件,用于通过网络读取/写入数据,但这个"file"到底是什么?一个普通的磁盘文件将位于磁盘中,任何东西都会被写入那里,但是套接字文件写入到哪里,也许是内存中的字节流? 最佳答案 套接字不会创建“假文件”。它创建一个文件描述符,它是流的系统抽象(好吧,你标记了windows和linux,实现非常依赖于系统)。文件、套接字、管道是经典的Unix流示例。对于套接字流,字节最终将物理写入硬件(内存和/或网卡),对于文件流,字节将物理写入物理驱动器。 关于c-套接

c - Winsock UDP 套接字接收缓冲区利用率

我已经建立了一个UDP套接字:receiveSocket=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);然后我修改套接字参数以使用大于默认缓冲区(例如100,000字节):bufferSize=100000;bufferSizeLen=sizeof(bufferSize);setsockopt(receiveSocket,SOL_SOCKET,SO_RCVBUF,(char*)&bufferSize,bufferSizeLen);稍后,我想查询套接字以了解缓冲区中当前存储了多少数据(即有多少数据报等待通过调用recv()检索).有办法吗?

c - 如何在线程/进程之间可移植地共享变量?

我有一个服务器,它为每个传入请求生成一个新进程或线程,我需要从线程和进程读取和写入在该服务器中定义的变量。由于服务器程序需要同时在UNIX和Windows上运行,我需要以可移植的方式共享变量,但我该怎么做呢?我需要使用标准C库或native系统调用,所以请不要推荐第三方库。 最佳答案 sharedmemory是特定于操作系统的。在Linux上,考虑阅读shm_overview(7)和(因为使用共享内存,你总是需要某种方式来同步)sem_overview(7).当然,您需要找出相似(但可能不等同)的Windows函数调用。注意thre

windows - 在 ZABBIX 代理窗口中使用 JBOSS 7.1 JMX 进行监控

当我尝试将我的zabbix服务器与JBoss7.1连接时出现问题,错误是:无法检索RMIServerstub:javax.naming.ServiceUnavailableException[根异常是java.rmi。我认为问题出在客户端配置上,代理在windows中运行,有人知道我需要使用什么命令来更改run.conf中的端口。感谢您的宝贵时间。 最佳答案 首先要注意的是,为了通过JMX监控JBoss,您不需要运行Zabbix代理。相反,您应该运行ZabbixJavagateway(另请参见sectiononJMXmonitori

c++ - 在 dllmain()/DLL_PROCESS_ATTACH 中允许实例化 com 对象?

在DLLMAIN()/DLL_PROCESS_ATTACH中加载DLL可能会导致问题。但是COMObjects可以使用e.q.实例化。CoInitialize()/CoCreateInstance()?编辑:问题是:在这种情况下,创建COM实例会导致类似的错误,例如加载DLL吗?在我看来,加载DLL和创建COM实例在某种程度上是相似的。 最佳答案 我不确定你从哪里得到这句话,但听起来不对。永远不要将任何重要的代码放入DllMain中。特别是调用LoadLibrary的代码。许多WindowsAPI会在后台调用LoadLibrary,